package 金卡银卡Bigdecimal_多态;

import java.math.BigDecimal;
import java.util.Scanner;

/**
 * 训练目标：BigDecimal+多态
 * 某加油站为了吸引更多的车主，推出了如下活动，车主可以办理金卡和银卡。
 * 卡片信息包括：车牌号码、车主姓名、电话号码、卡片余额。
 * ·金卡支付时享受8折优惠，银卡支付时享受9折优惠，金卡消费满200元可以提供打印免费洗车票的服务
 * 需求：请使用面向对象编程，完成该加油站支付机的存款和消费程序。
 */
public class Test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("请输入支付方式：1-金卡 2-银卡");
            int cardType = sc.nextInt();
            if (cardType == 1) {
                payment(new Card() {
                    @Override
                    public void payment(BigDecimal money) {
                        if (money.compareTo(BigDecimal.ZERO) == 0) {
                            System.out.println("余额不足，请去充值");
                            return;
                        }
                        BigDecimal payMoney = money.multiply(new BigDecimal(DISCOUNT_GOLD));//计算支付金额
                        System.out.println("支付金额：" + payMoney);
                        if (money.compareTo(new BigDecimal(SPEND_200_OR_MORE0)) == 1) {
                            System.out.println("消费满200元可以提供打印免费洗车票的服务");
                        } else {
                            System.out.println("消费金额不足200元，无法提供打印免费洗车票的服务");
                        }

                    }
                });
                break;
            } else if (cardType == 2) {
               payment(new Card() {
                    @Override
                    public void payment(BigDecimal money) {
                        if (money.compareTo(BigDecimal.ZERO) == 0) {
                            System.out.println("余额不足，请去充值");
                            return;
                        }
                        BigDecimal payMoney = money.multiply(new BigDecimal("0.9"));//计算支付金额
                        System.out.println("支付金额：" + payMoney.setScale(2, BigDecimal.ROUND_HALF_UP));
                    }
                });
                break;
            }
        }

    }

    public static void payment(Card card) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入支付金额：");
        BigDecimal money = sc.nextBigDecimal();
        card.payment(money);
    }
}




















    /*
    public static void main(String[] args) {

        Card goldcard = new Card("京A12345", "13888888888",
                new BigDecimal("1000"), "张三");

        System.out.println(goldcard.getPlateNumber());
        System.out.println(goldcard.getTheNameOfTheOwner());
        System.out.println(goldcard.getPhoneNumber());
        System.out.println(goldcard.getBalance());
        payment("金卡");
        payment("银卡");

    }

    static void payment(String getcard) {
        if (getcard.equals("金卡")) {
            System.out.println("金卡支付时享受8折优惠");
            System.out.println("金卡消费满200元可以提供打印免费洗车票的服务");

        } else if (getcard.equals("银卡")) {
            System.out.println("银卡支付时享受9折优惠");

        }
    }*/
